#!/usr/bin/env bashio
# shellcheck shell=bash

for file in /data/gitea/conf/app.ini /etc/templates/app.ini; do

    if [ ! -f "$file" ]; then
        continue
    fi

    ##############
    # SSL CONFIG #
    ##############

    # Clean values
    sed -i "/PROTOCOL/d" "$file"
    sed -i "/CERT_FILE/d" "$file"
    sed -i "/KEY_FILE/d" "$file"

    # Add ssl
    bashio::config.require.ssl
    if bashio::config.true 'ssl'; then
        PROTOCOL=https
        bashio::log.info "ssl is enabled"
        sed -i "/server/a PROTOCOL=https" "$file"
        sed -i "/server/a CERT_FILE=/ssl/$(bashio::config 'certfile')" "$file"
        sed -i "/server/a KEY_FILE=/ssl/$(bashio::config 'keyfile')" "$file"
        chmod 744 /ssl/*
    else
        PROTOCOL=http
        sed -i "/server/a PROTOCOL=http" "$file"
    fi

done

##################
# ADAPT ROOT_URL #
##################

if bashio::config.true 'ROOT_URL'; then
    bashio::log.blue "ROOT_URL set, using value : $(bashio::config 'ROOT_URL')"
else
    ROOT_URL="$PROTOCOL://$(bashio::config 'DOMAIN'):$(bashio::addon.port 3000)"
    bashio::log.blue "ROOT_URL not set, using extrapolated value : $ROOT_URL"
    sed -i "/server/a ROOT_URL=$ROOT_URL" "$file"
fi

####################
# ADAPT PARAMETERS #
####################

for param in APP_NAME DOMAIN ROOT_URL; do
    # Remove parameter
    sed -i "/$param/d" "$file"

    # Define parameter
    if bashio::config.has_value "$param"; then
        echo "parameter set : $param=$(bashio::config "$param")"
        sed -i "/server/a $param = \"$(bashio::config "$param")\"" "$file"

        # Allow at setup
        sed -i "1a $param=\"$(bashio::config "$param")\"" /etc/s6/gitea/setup

    fi

done

##############
# LAUNCH APP #
##############

bashio::log.info "Please wait while the app is loading !"

/./usr/bin/entrypoint
